<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>原型constructor</title>
</head>
<body>
  <script>
    function Star (uname, age) {
      this.uname = uname
      this.age = age
    }

    // 很多情况下,我们需要手动的利用constructor 这个属性指回 原来的构造函数
    // Star.prototype.sing = function () {
    //   console.log('我会唱歌')
    // }
    // Star.prototype.movie = function () {
    //   console.log('我会演电影')
    // }
    Star.prototype = {
      // 如果我们修改了原来的原型对象,给原型对象赋值的是一个对象,则必须手动的利用constructor指回原来的构造函数
      constructor: Star,
      sing: function () {
        console.log('我会唱歌')
      },
      movie: function () {
        console.log('我会演电影')
      },
    }
    var ldh = new Star('刘德华', 18)
    var zxy = new Star('张学友', 19)
    console.log(Star.prototype)
    console.log(ldh.__proto__)
    console.log(Star.prototype.constructor)
    console.log(ldh.__proto__.constructor)
  </script>
</body>
</html>